Kubernetes

Monitoring Kubernetes Cluster bersama Lens


K8s Lens


Hola teman teman sekalian, kembali lagi bersama saya Gilang. Kali ini saya ingin membahas sedikit tentang Kubernetes atau platform High Availabillity yang paling nge-trend ini. Mungkin bagi kalian para System Operator/DevOps akan sering menjumpai memanage sebuah server besar menggunakan Container orchestrator khususnya Kubernetes ini. Dalam proses me-manage container yang sangat banyak tentunya kita terkadang sedikit kesulitan untuk melihat markdown dari apa apa saja yang telah kita deploy, ternyata ada aplikasi untuk membuat proses monitoring dalam Kubernetes jadi mudah loh, dia adalah Lens. Dengan menggunakan Lens kita memungkinkan untuk monitoring semua container, pod, deployment, service,dsb dalam satu aplikasi atau dashboard yang sangat mudah atau enak dilihat, jadi katakan selamat tinggal kepada dunia hitam putih (CLI). Tanpa berlama — lama langsung saja kita masuk ke cara instalasi Lens beserta konfigurasinya.

Perlu diketahui untuk menerapkan hal ini, diharapkan kalian sudah memiliki environment cluster Kubernetes. Jika belum memiliki cluster Kubernetes, kalian bisa melakukan Provisioning menggunakan cara pada artikel https://gilangvperdana.medium.com/installation-kubernetes-cluster-baremetal-4d70e733ea15 . Dan kali ini, saya akan mempraktekannya pada Kubernetes Cluster yang saya instalasi diatas VirtualBox dengan OS Ubuntu 21.04 Server.

Environment :

1. Kubernetes Cluster

2. Lens

3. Putty

4. Windows


Langkah Instalasi:

  1. Download Lens pada link berikut https://k8slens.dev/

Klik download for Windows (jika menggunakan Windows) lalu instalasi aplikasi seperti biasa.


2. Konfigurasi Networking semua VM Kubernetes Cluster

Untuk menggunakan Lens, diharapkan agar Kubernetes cluster pada Virtual Box bisa saling berhubungan secara networking ke Host OS (disini Windows).

· Lakukan bridging pada semua VM Kubernetes Cluster

Hal ini dilakukan agar Kubernetes Cluster memiliki akses ke Host OS. Kalian bisa memilih menggunakan Bridged Adapter atau Host Only Adapter (tinggal sesuaikan saja dengan konfigurasi Kubeadm kalian, atau bisa dicek pada $ kubectl cluster-info).

Terlihat bahwa Kubernetes Cluster saya jalan pada Network 192.168.80.2, dimana 192.168.80.2 adalah address pool rumah saya (yang digenerate otomatis oleh Router rumah a.k.a DHCP). Setelah memastikan cluster address sama dengan network rumah, kita coba tes ping dari Host OS (Windows) untuk memastikan apakah Windows dan Kubernetes Cluster bisa saling berhubungan.

Terlihat bahwa Host OS sudah bisa ping ke Kubernetes Cluster, dimana 192.168.80.2 disini adalah Node Master dari Kubernetes Cluster saya. Jika koneksi sekiranya sudah aman, silahkan buka Lens.


3. Konfigurasi Lens

Terlihat, diatas adalah tampilan utama aplikasi Lens yang belum memiliki cluster untuk dimanage nya. Kali ini kita akan memanage cluster kita dengan langsung saja menekkan tombol plus di pojok kanan bawah.

Dalam proses penambahan Cluster pada Lens, kita diharuskan untuk input Kubeconfig file. Ada dua, kalian bisa insert kubeconfig secara file maupun kalian bisa sekedar copy paste saja kubeconfig file.

Baiklah, kita akan cari kubeconfig cluster kubernetes dengan mengetikkan script berikut pada node master:

$ sudo cat /root/.kube/config
Atau
$ kubectl config view — minify –raw

Setelah terlihat, copy paste dari bari apiVersion sampai habis. Lalu copy paste pada add cluster Lens pada section Paste as text.

Setelah ter-paste, Klik add cluster dan tunggu prosesnya.

Kita tunggu sejenak, dan

Voila, kita sudah berhasil menambahkan cluster Kubernetes pada Lens sebagai aplikasi untuk monitoring. 


Dengan Sertifikat ?

Bagaimana dengan kubeconfig yang memiliki sertifikat (.crt & .key) untuk validasi kedalam clusternya? Hal ini sering ditemui pada cluster — cluster yang menjamin keamanan tinggi. Seperti Minikube yang menyediakan sertifikat untuk koneksi kedalam cluster-nya. Mari kita lihat manifest dari .config nya pada /home/minikube/.minikube/.kube/config .

$ nano /home/minikube/.minikube/.kube/config


Maka jika kalian ingin mengkoneksikannya atau terapkan pada aplikasi Lens yang berjalan pada Windows, silahkan copy semua file sertifikat (ca.crt , client.crt, client.key) dan taruh pada file directory Windows kalian.

$ cat /home/minikube/.minikube/ca.crt
$ cat/home/minikube/.minikube/client.crt
$ cat/home/minikube/.minikube/client.key

Setelah terpampang, silahkan copy dan paste pada directory windows kalian. Pada contoh kali ini saya akan menyimpan pada folder direktori saya dengan path D:\WHILE\minikube . Yang menjadikannya seperti ini :


Pada manifest Lens diatas diketahui bahwa kita menyimpan file manifesrt sertifikat minikube pada D:\WHILE\minikube\.minikube\profiles\minikube\ . Silahkan taruh sesuka hati kalian, dan sesuaikan pada manifest config pada Lens.

 — -

Setelah selesai, silahkan connect dan Lens pun akan jalan seperti biasa. Selamat mencoba.


Bagi yang ingin monitoring cluster K8s menggunakan Lens pada socks proxy, silahkan define Proxy pada Lens seperti ini :

socks5://127.0.0.1:500

Endpoint proxy diatas berarti kita menggunakan channel 500 sebagai socksv5proxy, dimana cara untuk socksv5proxy bisa menggunakan command berikut :

# on Windows CMD
# you can use 500 with another numbers.
$ ssh user@cluster_endpoint -D 500

Tentunya masih banyak aplikasi untuk melakukan monitoring Kubernetes ini contoh rekomendasi (Prometheus/Grafana, Pixie, NewRelic). Silahkan untuk memahami konsep monitoring ini, terus explore dan tentunya Keep Learning. Regards.